package com.tarry.template;

/**
 * 游戏模板方法
 *
 */
public abstract class GameTemplate {
    protected abstract void runGame();
    protected void choosePerson(){

    }
    protected abstract void startGame();
    protected abstract void endGame();

    /**
     * 指定游戏过程
     * 使用final修饰模板方法，防止该方法被恶意修改
     */
    public final void play(){
        runGame();
        choosePerson();
        startGame();
        endGame();
    }
}
